<%--
    Document   : consultarNormaTecnica
    Created on : 04-feb-2011, 1:54:10
    Author     : Francis
--%>

<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">

<% request.setAttribute("allowed", "Gestionar Normas Tecnicas");%>
<%@ include file='../Templates/security.jsp' %>

<script type="text/javascript">
    // Definición de variables:
    // Estas cambian en todos los script
    var nombre = "";
    var codigo = "";

    // Estas no cambian
    var offset = 0;
    var tam = 0;
    var limit = 0;

    //Ordenar la tabla alfbeticamente por una columna determinada.
    var order = "";
    var asc = true;

    // Llamamos al método por primera vez para obtener el tamano de la tabla correspondiente a la consulta.
    consultarNormaTecnica();

    function consultarNormaTecnica(){
        // Aqui se realiza la consulta a la BD (Cambia en todos los scripr)
        $.getJSON("consultarNormaTecnica.do",{nombre: nombre, codigo: codigo,
            order: order, limit: limit, offset: offset},
        function(data) {
            // (Cambia en todos los script)
            // Lo unico que cambia en esta parte es el llamado del método
            if(limit != 0){

                $('#head').empty();
                /* Agregar esta linea*/
                $("#obs").empty();
                $("#obs").append('OBSERVACIÓN: Para ordenar la tabla por un campo específico, presionar el nombre de la columna.');
                /* Agregar esta linea*/
                var head = "<tr>"+
                    "<th><h14>"+
                    "<div class=\"ordenar\" onclick=\"orden('nombre');\" >"+
                    "Nombre de Norma</div></h14></th>"+
                    "<th><h14>"+
                    "<div class=\"ordenar\" onclick=\"orden('codigo');\" >"+
                    "Código de Norma</div></h14></th>"+
                    "<th><h14>"+
                    "<div class=\"ordenar\" onclick=\"orden('descripcion');\" >"+
                    "Descripción</div></h14></th>"+
                    "<th><h14>Archivo</h14></th>"+
                    "</tr>";
                $('#head').append(head);

                $('#resultado').empty();
                var fila;
                $.each(data.consultarNormaTecnica , function(i,item){
                    // Esto se hace para pintar el fondo de las filas pares e impares. (NO CAMBIA)
                    if ( (i % 2) == 0){
                        fila = "<tr bgcolor = \"#fff\"> ";
                    }
                    else{
                        fila = "<tr bgcolor = \"#ecf2f6\">";
                    }

                    // Esto decide si poner o no el dibujo del PDF.
                    var file = "";
                    if (item.archivo_norma != null)
                        senal = item.archivo_norma;
                        //var path = senal.substring(senal.lastIndexOf("/"), senal.length);
                        file = "<td><div style='text-align:center;' >"+
                        "<a href='Modulo3/archivosNT/"+senal+"' target='_blank' ><img src='style/images/pdf.gif' alt='Generar Pdf' width='20' height='20'></a>";
                    // Aqui se van creando los String para llenar la tabla (Cambia en todos los script)
                    var string = fila+"<td>"+item.nombre+"</td><td>"+item.codigo+
                        "</td><td>"+item.descripcion+"</td>"+file+"</tr>";
                    fila++;
                    //alert(string);
                    $('#resultado').append(string);

                    // Aqui se decide las paginas: Actual y totales (NO CAMBIA)
                    tam = parseInt(item.tam);
                    $("#currentpage").empty();
                    $("#pagelimit").empty();
                    $("#currentpage").append((offset/limit)+1);
                    $("#pagelimit").append(Math.ceil(tam/limit));
                });
            }
            else{
                // Se pinta la tabla en la página. (Cambia en todos los script)
                // Lo unico que cambia en todos los script es el llamado a la función.
                $.each(data.consultarNormaTecnica, function(i,item){
                    tam = parseInt(item.tam);
                });
                limit = 10;
            }
        }
    );
        /* Agregar esta linea*/
        document.getElementById('controls').style.visibility="visible";
        /* Agregar esta linea*/
    }

    // Estas funciones determinan todos los campos de la tabla (Cambia en todos los script)
    function setNombre(nombreNT){
        offset = 0;
        nombre = nombreNT;
        consultarNormaTecnica();
    }

    // Estas funciones determinan todos los campos de la tabla (Cambia en todos los script)
    function setCodigo(codigoNT){
        offset = 0;
        codigo = codigoNT;
        consultarNormaTecnica();
    }

    // Ordenar la tabla de forma ascendente o descendente.
    function orden(key){
        if (asc == true){
            order = "order by "+key+" asc ";
            consultarNormaTecnica();
        }
        else{
            order = "order by "+key+" desc ";
            consultarNormaTecnica();
        }
        asc = !asc;
    }

    // Se fija el número de páginas totales de la consulta (NO CAMBIA)
    function setLimit(piso){
        offset = 0;
        limit = parseInt(piso);
        consultarNormaTecnica();
    }

    // Se fijan los alcances de las flechas primera, última, siguiente y anterior (NO CAMBIA)
    function setOffset(i, completo){
        if(completo && (i==-1)){
            offset = 0;
        }
        else if(completo && (i==1)){
            offset = Math.floor((tam-1)/limit)*limit;
        }
        else if(!completo && i==-1){
            if(offset>=limit){
                offset -= limit;
            }
        }
        else{ //!completo && i==1
            if(offset<tam-limit){
                offset += limit;
            }
        }

        //
        consultarNormaTecnica();
    }

</script>
<script type="text/javascript">
    // Este script determina que la primera vez que se ve la tabla (sin resultados),
    // el numero de paginas y la pagina actual serán 1. (NO CAMBIA)
    if(limit == 0){
        $("#currentpage").append(1);
        $("#pagelimit").append(1)
    }
</script>
<!-- Script que coloca la información de la base de datos en los select-->


<h1 class="title">Gestión de Norma Técnica</h1>
<p class="meta"></p>
<div class="entry">
    <center>
        <h2>Consultar Norma Técnica</h2>
        <table>
            <tbody>
            <br>
            <br>
            <tr>
                <td>Nombre de Norma:</td>
                <td>
                    <input id="Nombre" name="nombre" onchange="setNombre(value)"/>
                </td>
            </tr>
            <tr>
                <td>Código de Norma:</td>
                <td>
                    <input id="codigo" name="codigo" onchange="setCodigo(value)"/>
                </td>
            </tr>
            <br>
            </tbody>
        </table>
        <br>
        <html:button property="" value="  Mostrar Todo  " onclick="consultarNormaTecnica()"/>
        <html:button property="" styleId="NT" value="  Atrás  "/>
        <br><div style="clear: both;">&nbsp;</div><br>

        <div id="obs"></div><br>
        <%-- AQUI COMIENZA LA IMPRESION DE LA TABLA DE RESULTADOS --%>
        <div id="consultarNormaTecnica" style="overflow:auto">

            <table cellpadding="0" cellspacing="0" border="0" id="table" class="sortable"  >
                <thead id="head">
                </thead>  
                <tbody id="resultado">
                </tbody>
            </table>
        </div>
        <div style="clear: both;">&nbsp;</div>


        <%-- Aquí se manejan las flechas, cantidad de paginas a mostrar y numero de pagina --%>
        <%-- esto no es necesario cambiarlo --%>
        <%@ include file="../Templates/paginasTabla.jsp" %>

    </center>
</div>
<div style="clear: both;">&nbsp;</div>
<script type="text/javascript">
    /* Agregar esta linea*/
    document.getElementById('controls').style.visibility="hidden";
    /* Agregar esta linea*/
</script>